1. Field of the Invention
This invention relates generally to techniques for performing data transfer operations, and relates more particularly to a system for providing deterministic performance from a non-deterministic device.
2. Description of the Background Art
Implementing effective methods for transferring data between electronic devices is a significant consideration for designers and manufacturers of contemporary electronic devices. An electronic device in an electronic network may advantageously communicate with other electronic devices in the network to share data to thereby substantially increase the capabilities and versatility of individual devices in the electronic network. For example, an electronic network may be implemented in a home environment to enable flexible and beneficial sharing of data and device resources between various consumer electronic devices, such as personal computers, digital video disc (DVD) devices, digital set-top boxes for digital broadcasting, enhanced television sets, and audio reproduction systems.
Effectively managing data transfer operations in a network of electronic devices may create substantial challenges for designers of electronic networks. For example, enhanced demands for increased device functionality and performance during data transfer operations may require more system processing power and require additional hardware resources across the network. An increase in processing or hardware requirements may also result in a corresponding detrimental economic impact due to increased production costs and operational inefficiencies.
Network size is also a factor that affects the management of data transfer operations in an electronic network. Communications in an electronic network typically become more complex as the number of individual devices or nodes increases. Assume that a particular device on an electronic network is defined as a local device with local software elements, and other devices on the electronic network are defined as remote devices with remote software elements. Accordingly, a local software module on the local device may need to transfer data to and from various remote devices across the electronic network. However, successfully managing a substantial number of electronic devices across a single network may provide significant benefits to a system user.
Furthermore, enhanced device capability to perform various advanced memory transfer operations may provide additional benefits to a system user, but may also place increased demands on the control and management of the various devices in the electronic network. For example, an enhanced electronic network that effectively accesses, processes, and displays digital television programming may benefit from efficient network communication techniques because of the large amount and complexity of the digital data involved.
One type of data transfer that may occur in an electronic network is an isochronous data transfer. Isochronous data transfers include the guaranteed handling of data that arrives in a time-based stream at regular intervals called cycles. Isochronous data transfers are typically used for time-sensitive applications. For example, video or audio data being transmitted across a network typically needs to arrive at a display device in an uninterrupted flow with appropriate timing.
Due to growing demands on system resources and substantially increasing data magnitudes, it is apparent that developing new and effective methods for transferring data is a matter of significant concern for the related electronic technologies. Therefore, for all the foregoing reasons, implementing effective methods for transferring data between electronic devices remains a significant consideration for designers, manufacturers, and users of contemporary electronic devices.
In accordance with the present invention, a system is disclosed for providing deterministic performance from a non-deterministic device. In one embodiment, one or more nodes are configured to perform isochronous and/or non-isochronous data transfer operations onto an input/output bus of an electronic device. Initially, a bandwidth manager preferably programs a maximum data register with a maximum data value that specifies a maximum number of data units to be transferred from a corresponding node during a single isochronous cycle. The electronic device then preferably waits for a cycle start signal to indicate the beginning of the next isochronous cycle. The electronic device next preferably waits for a request for access to the input/output bus from a particular node.
After a request for the input/output bus occurs, then the requesting node preferably waits to receive a grant signal from an input/output bus bridge contained in the electronic device authorizing the requesting node to take control of the input/output bus. After a grant signal is received by the requesting node, then that node preferably begins to transfer data units through a deterministic interface onto the input/output bus. A data counter preferably monitors the number of data units as they are transferred, and stores the number of transferred data units as a data count value in the deterministic interface.
A comparator preferably then determines whether the current data count value in the data counter is equal to the maximum data value in the maximum data register. If the current data count value in the data counter is equal to the maximum data value in the maximum data register, then, control logic in the deterministic interface preferably commands the transferring node to interrupt the current non-isochronous data transfer. The deterministic interface also preferably resets the data count value in the data counter to a value of zero.
If untransferred data remains in the interrupted non-isochronous data transfer operation, then the electronic device preferably waits for a new cycle start signal to indication the beginning of the next isochronous cycle. After a new cycle start occurs, then interrupted node may attempt to complete the non-isochronous data transfer operation in the new isochronous cycle and in subsequent isochronous cycles. The present invention thus effectively implements a system and method for providing deterministic performance from a non-deterministic device.